package com.yuncheng.spcyApi.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuncheng.spcyApi.entity.SysUserJyjl;

import com.yuncheng.spcyApi.mapper.SysUserJyjlMapper;
import com.yuncheng.spcyApi.service.ISysUserJyjlService;
import com.yuncheng.spcyApi.utils.GetCurrentUserUtils;
import com.yuncheng.spcyApi.utils.OrderItemUtils;

import com.yuncheng.vo.CurrentUserVo;
import com.yuncheng.spcyApi.vo.common.OrderItemVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import com.yuncheng.common.base.service.impl.BaseServiceImpl;

import java.util.List;

/**
 * @Description: 系统-用户教育经历
 * @Author: csx
 * @Date: 2023-03-03
 * @Version: V1.0
 */
@Service
public class SysUserJyjlServiceImpl extends BaseServiceImpl<SysUserJyjlMapper, SysUserJyjl> implements ISysUserJyjlService {

    @Override
    public IPage getPageList(Page<SysUserJyjl> page, SysUserJyjl sysUserJyjl, String year, boolean isSelectMe, OrderItemVo orderItemVo) {
        LambdaQueryWrapper<SysUserJyjl> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(StringUtils.isNotBlank(sysUserJyjl.getFuserid()),SysUserJyjl::getFuserid,sysUserJyjl.getFuserid());
        queryWrapper.like(StringUtils.isNotEmpty(sysUserJyjl.getFbyyx()),SysUserJyjl::getFbyyx,sysUserJyjl.getFbyyx());
        queryWrapper.like(StringUtils.isNotEmpty(sysUserJyjl.getFxl()),SysUserJyjl::getFxl,sysUserJyjl.getFxl());
        queryWrapper.like(StringUtils.isNotEmpty(sysUserJyjl.getFzy()),SysUserJyjl::getFzy,sysUserJyjl.getFzy());
        queryWrapper.like(StringUtils.isNotBlank(sysUserJyjl.getFusermc()),SysUserJyjl::getFusermc,sysUserJyjl.getFusermc());
        if (sysUserJyjl.getFkssj() != null){
            queryWrapper.ge(SysUserJyjl::getFkssj,sysUserJyjl.getFkssj());
        }
        if (sysUserJyjl.getFjssj() != null){
            queryWrapper.le(SysUserJyjl::getFjssj,sysUserJyjl.getFjssj());
        }
        if (StringUtils.isNotBlank(year)){
            queryWrapper.like(SysUserJyjl::getFkssj, year);
        }
        if (isSelectMe){
            CurrentUserVo currentUser = GetCurrentUserUtils.getCurrentUser();
            if (currentUser != null){
                queryWrapper.eq(StringUtils.isNotBlank(currentUser.getId()),SysUserJyjl::getFuserid,currentUser.getId());
            }
        }
        if (StringUtils.isBlank(orderItemVo.getOrderItem())) {
            queryWrapper.orderByAsc(SysUserJyjl::getFkssj);
            queryWrapper.orderByDesc(SysUserJyjl::getCreateTime);
        }else {
            OrderItemUtils.setOrderItem(queryWrapper, orderItemVo);
        }
        IPage<SysUserJyjl> pageList = page(page, queryWrapper);
        return pageList;
    }

    @Override
    public List<SysUserJyjl> getList(SysUserJyjl sysUserJyjl, String year, boolean isSelectMe) {
        LambdaQueryWrapper<SysUserJyjl> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(StringUtils.isNotBlank(sysUserJyjl.getFuserid()),SysUserJyjl::getFuserid,sysUserJyjl.getFuserid());
        queryWrapper.like(StringUtils.isNotEmpty(sysUserJyjl.getFbyyx()),SysUserJyjl::getFbyyx,sysUserJyjl.getFbyyx());
        queryWrapper.like(StringUtils.isNotEmpty(sysUserJyjl.getFxl()),SysUserJyjl::getFxl,sysUserJyjl.getFxl());
        queryWrapper.like(StringUtils.isNotEmpty(sysUserJyjl.getFzy()),SysUserJyjl::getFzy,sysUserJyjl.getFzy());
        queryWrapper.like(StringUtils.isNotBlank(sysUserJyjl.getFusermc()),SysUserJyjl::getFusermc,sysUserJyjl.getFusermc());
        if (sysUserJyjl.getFkssj() != null){
            queryWrapper.le(SysUserJyjl::getFkssj,sysUserJyjl.getFkssj());
        }
        if (sysUserJyjl.getFjssj() != null){
            queryWrapper.ge(SysUserJyjl::getFjssj,sysUserJyjl.getFjssj());
        }
        if (StringUtils.isNotBlank(year)){
            queryWrapper.like(SysUserJyjl::getFkssj, year);
        }
        if (isSelectMe){
            CurrentUserVo currentUser = GetCurrentUserUtils.getCurrentUser();
            if (currentUser != null){
                queryWrapper.eq(StringUtils.isNotBlank(currentUser.getId()),SysUserJyjl::getFuserid,currentUser.getId());
            }
        }
        queryWrapper.orderByAsc(SysUserJyjl::getFkssj);
        queryWrapper.orderByDesc(SysUserJyjl::getCreateTime);
        List<SysUserJyjl> pageList = list(queryWrapper);
        return pageList;
    }
}
